$(function(){

	// 异步请求标志
	var asyFlag = true;

	//异步获取子城市
	$('.user-add').live('change',function(){

		//获取城市id
		var cid=$(this).val();

		//如果没有选择城市就直接返回
		if(cid==''){

			$(this).css('border-color','red').addClass('error');//如果有错，就给input红色并添加error类
			$(this).parents('tr').after('<span style="color:red;position:relative;left:118px">不能为空<span>');//给出提示信息
			return;
		}else {
			$(this).nextAll('select').addClass('error');
			$(this).css('border-color','#ccc').removeClass('error');
			$(this).parents('tr').next('span').remove();
		} 	

		//隐藏后面的select
		$(this).nextAll('select').hide();
		var that=this;

		// 检测是否存在异步请求
		if( !asyFlag ){
			return false;
		}
		asyFlag = false;

		//异步获取子城市
		$.get(getChildCityUrl,{id:cid},function(data) {
			
			//如果有返回状态为真
			if(data.status){

				//拼凑option字符串
				var str='<option value="">请选择</option>';
				for (var i in data.city) {
					str+='<option value="'+data.city[i].cid+'">'+data.city[i].city_name+'</option>';
				}

				if(data.city.length==1){
					$(that).next('select').html('').append(str).val(data.city[0].cid).show(); 
					that=$(that).next('select');
					$.get(getChildCityUrl,{id:data.city[0].cid},arguments.callee,'json');
					return ;
				}

				//将拼凑好的option字符串插入到select内
				$(that).removeClass('error');
				$(that).next('select').html('').append(str).show(); 

				// 此次异步完成，允许再次异步请求
				asyFlag = true;
			}
		},'json');
	});

	//添加收货地址
	$('.add-address').click(function() {

		$("#address-dialog").dialog({
			width:440,
			height:544,
			modal:true,
			zIndex: 100011,
			close: function() {
				$("#addressForm")[0].reset();
				$("#addressForm").find('.input').removeAttr('style').parents('tr').next('span').remove();
				$('select[name=city],select[name=district]').hide();
			},
			buttons:{
				"添加地址":function(){
					$("#addressForm").submit();
				},
				"取消":function(){
					$("#address-dialog").dialog('close');
				}
			}
		});

		//阻止默认行为
		return false;
	});


	//添加收货地址表单验证
	//首先给必须验证的元素一个error类，用于提交时的验证
	$(".must").addClass('error');
	//获取焦点事件
	$(".must").focus(function(){
		$(this).parents('tr').next('span').remove();//移除提示信息
		$(this).css('border-color','#ddd');//还原边框样式
	});
	//失去焦点事件
	$(".must").blur(function(){
		var value=$(this).val();//获取表单项的值

		//为空时给出提示
		if(value==''){
			$(this).css('border-color','red').addClass('error');//给input红色并添加error类
			$(this).parents('tr').after('<span style="color:red;position:relative;left:118px">不能为空<span>');	
		}else{
			$(this).removeClass('error');//移除error类
		}
	});

	//手机验证
	$('input[name=mobile]').blur(function(){
		var value=$(this).val();//获取表单项的值
		if(value=='') return;//如果为空就进行上面编写的失去焦点事件即可，不能测试下面的格式

		//检测手机格式是否正确
		if(!(/^1[34578]\d{9}$/.test(value))){
			$(this).css('border-color','red').addClass('error');//如果有错，就给input红色并添加error类
			$(this).parents('tr').after('<span style="color:red;position:relative;left:118px">手机格式书写错误<span>');//给出提示信息
		}else{
			$(this).removeClass('error');//移除error类
		}
	});

	// 县验证
	$('select[name=district]').change(function() {
		
		//获取城市id
		var cid=$(this).val();

		//如果没有选择城市就直接返回
		if(cid==''){

			$(this).css('border-color','red').addClass('error');//如果有错，就给input红色并添加error类
			$(this).parents('tr').after('<span style="color:red;position:relative;left:118px">不能为空<span>');//给出提示信息
			return;

		}else{

			$(this).css('border-color','#ccc').removeClass('error');
			$(this).parents('tr').next('span').remove();

		}

	});

	//添加收货地址表单提交事件
	$('#addressForm').submit(function(){
		var flag=true;//用于判断是否提交

		//循环判断必须验证项是否有error类
		$('.must').each(function() {

			if($(this).hasClass('error')){
				console.log($(this));
				if( $(this).attr('id') == 'province' && $(this).attr('id') == 'city' && $(this).attr('id') == 'district' ){
					
					$(this).trigger('change');

				}else {
					
					$(this).trigger('focus');//触发获得焦点事件，清除提示信息
					$(this).trigger('blur');//出入失去焦点事件，判断是否正确

				}

				flag=false;
			}

		});

		//判断是否提交表单
		if(flag){

			$('.ui-dialog-buttonset').find('button').eq(0).attr('disabled',true);

		}else{

			return false;
		}
	});

	//修改收货地址
	$('.edit-address').click(function() {

		// 获取id
		var id = $(this).parents('tr').attr('aid');
		
		// 检测是否存在异步请求
		if( !asyFlag ){
			return false;
		}
		asyFlag = false;
		
		// 异步获取地址信息
		$.get(getAddressUrl, {id:id}, function(data) {
			console.log(data)
			if( data['status'] ) {

				// 拼凑数据html字符串
				var html = '<form action="'+editAddressUrl+'" method="post" id="editAddressForm">\
				                <table class="table-form">\
				                    <tr>\
				                        <th><span style="color:red">*</span>收货人姓名：</th>\
				                        <td><input type="text" name="consignee" value="'+data['address']['consignee']+'" class="input must"></td>\
				                    </tr>\
				                    <tr>\
				                        <th><span style="color:red">*</span>手机：</th>\
				                        <td>\
				                            <input type="text" name="mobile" class="input input-large must" value="'+data['address']['mobile']+'">\
				                        </td>\
				                    </tr>\
				                    <tr>\
				                        <th>电话：</th>\
				                        <td>\
				                            <input type="text" name="tel" class="input input-large" value="'+data['address']['tel']+'">\
				                        </td>\
				                    </tr>\
				                    <tr>\
				                        <th>Email：</th>\
				                        <td>\
				                            <input type="text" name="email" class="input input-large" value="'+data['address']['email']+'">\
				                        </td>\
				                    </tr>\
				                     <tr>\
				                        <th>所在地：</th>\
				                        <td>\
				                            <select name="province" class="user-add select" id="edit-province">\
				                            	<option value="">请选择</option>';

				                    var selected = '';
	                            	for ( var i = 0; i < data.city.province.length;i++ ) {

	                            	   selected = ''

	                            	   if( data.city.province[i].cid == data['address']['province'] ) {
	                            	   		selected = 'selected="selected"';
	                            	   }

	                            	   html += '<option '+selected+' value="'+data.city.province[i].cid+'">'+data.city.province[i].city_name+'</option>';
	                            		
	                            	}

				                   html += '</select>\
				                            <select name="city" class="user-add select">\
				                            	<option value="">请选择</option>';

	                            	for ( var i = 0; i < data.city.city.length;i++ ) {

	                            	   selected = ''
	                            	   
	                            	   if( data.city.city[i].cid == data['address']['city'] ) {
	                            	   		selected = 'selected="selected"';
	                            	   }

	                            	   html += '<option '+selected+' value="'+data.city.city[i].cid+'">'+data.city.city[i].city_name+'</option>';
	                            		
	                            	}

				                   html += '</select>\
				                            <select name="district" class="user-add select">\
				                            	<option value="">请选择</option>';

	                            	for ( var i = 0; i < data.city.district.length;i++ ) {

	                            	   selected = ''
	                            	   
	                            	   if( data.city.district[i].cid == data['address']['district'] ) {
	                            	   		selected = 'selected="selected"';
	                            	   }

	                            	   html += '<option '+selected+' value="'+data.city.district[i].cid+'">'+data.city.district[i].city_name+'</option>';
	                            		
	                            	}

				                   html += '</select>\
				                        </td>\
				                    </tr>\
				                    <tr>\
				                        <th><span style="color:red">*</span>详细地址：</th>\
				                        <td>\
				                            <textarea name="address" class="input input-large must" rows="6">'+data['address']['address']+'</textarea>\
				                        </td>\
				                    </tr>\
				                    <tr>\
				                        <th>邮政编码：</th>\
				                        <td>\
				                            <input type="text" name="zipcode" value="'+data['address']['zipcode']+'" class="input">\
				                            <input type="hidden" name="aid" value="'+id+'" class="input">\
				                        </td>\
				                    </tr>\
				                    <tr>\
				                        <th>设置为默认地址：</th>';
				                        var checked1 = ''
				                        var checked2 = ''
				                        if( data['address']['default'] == 1 ) {

	                            	   		checked2 = 'checked="checked"';

	                            	  	}else{

	                            	  		checked1 = 'checked="checked"';
	                            	   		
	                            	  	}
	                            	  	
				                html +='<td>\
				                            <input type="radio" name="default" value="0" '+checked1+' />否\
				                            <input type="radio" name="default" value="1" '+checked2+' />是\
				                        </td>\
				                    </tr>\
				                </table>\
				            </form>';				

				// 将修改表单插入字符串加入到修改div下
				$('#address-dialog-edit').html(html);

				// 弹窗
				$("#address-dialog-edit").dialog({
					width:440,
					height:544,
					modal:true,
					zIndex: 100011,
					close: function() {
						$("#editAddressForm")[0].reset();
						$("#editAddressForm").find('.input').removeAttr('style').parents('tr').next('span').remove();
						$('select[name=city],select[name=district]').hide();
					},
					buttons:{
						"修改地址":function(){

							var flag=true;//用于判断是否提交

							//循环判断必须验证项是否有error类
							$('#editAddressForm .must').each(function() {

								if($(this).hasClass('error')){

									$(this).trigger('focus');//触发获得焦点事件，清除提示信息
									$(this).trigger('blur');//出入失去焦点事件，判断是否正确
									flag=false;
								}

							});
							
							//判断是否提交表单
							if(flag){
								
								$("#editAddressForm").submit();

							}else{

								return false;
							}

						},
						"取消":function(){
							$("#address-dialog-edit").dialog('close');
						}
					}
				});

				// 此次异步完成，允许再次异步请求
				asyFlag = true;
			}

		},'json');


		//阻止默认行为
		return false;
	});


	//删除收货地址
	$('.del-address').click(function() {

		var tr=$(this).parents('tr');

		var aid=tr.attr('aid');

		// 检测是否存在异步请求
		if( !asyFlag ){
			return false;
		}
		asyFlag = false;

		$.get(delAddressUrl,{id:aid},function(data) {
			
			if( data['status'] ){

				tr.fadeOut('slow', function() {
					tr.remove();
				});

				asyFlag = true;
			}
		},'json');	
		
		return false;
	});
})